﻿using System.Collections.Generic;

namespace ClickLand.CorporacionPlaza.AccesoDato.Contratos
{
    /// <summary>
    /// Contrato base para todos los DAo's
    /// </summary>
    public interface IDaoBase <T>
    {

        /// <summary> Metodo que obtiene todos los registro de una entidad dada </summary>
        /// <returns>lista de todos los registro de la entidad</returns>
        IList<T> ObtenerTodos();


        /// <summary> Metodo que obtiene los datos de un registro en particular dado su id </summary>
        /// <param name="id">id unico de la entidad</param>
        /// <returns>datos del registro</returns>
        T ObtenerPorId(long id);


        /// <summary> Metodo que inserta o modifica los datos de una entidad </summary>
        /// <param name="entidad">datos a insertar</param>
        /// <returns>true si se realizo la insercion false si no</returns>
        bool InsertarOModificar(T entidad);

        
        /// <summary> Metodo que elimina los datos de una entidad  </summary>
        /// <param name="entidad">datos a eliminar</param>
        /// <returns>true si se realizo la insercion false si no</returns>
        bool Eliminar(T entidad);
    }
}
